package com.weixing.mall.provider.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weixing.mall.provider.api.model.vo.dto.BillSaveDto;
import com.weixing.mall.provider.model.domain.GoodsTransBill;
import com.weixing.mall.provider.model.dto.ChgTransStatusDto;
import com.weixing.mall.provider.model.dto.GoodsTransBillDto;
import com.weixing.mall.provider.model.dto.NewGoodsTransBillDto;
import com.weixing.mall.provider.model.query.GoodsTransBillQuery;
import com.weixing.mall.provider.model.vo.GoodsTransBillListVo;

/**
 * <p>
 * 仓库模块-商品调拨单 服务类
 * </p>
 *
 * @author Small
 * @since 2019-11-15
 */
public interface IGoodsTransBillService extends IService<GoodsTransBill> {

    IPage<GoodsTransBillListVo> selectListOfPage(Page page, GoodsTransBillQuery goodsTransBillQuery,Long uid);

    long create(GoodsTransBillDto goodsTransBillDto, Long uid);

    boolean updateRemark(NewGoodsTransBillDto gtbd, Long uid);

    boolean updateGoodsInfo(NewGoodsTransBillDto gtbd, Long uid);

    void chgTransStatus(ChgTransStatusDto chgTransStatusDto, Long uid);

    GoodsTransBillListVo getGoodsTransBillById(long id);

    void tranBillGenerate(Long uid);

    void createBill(BillSaveDto billSaveDto);

    GoodsTransBill selectMaxId();

    String creatTransBill(String prefix);


    boolean checkTransBill(GoodsTransBillDto goodsTransBillDto);

    boolean checkTransBillProduct(NewGoodsTransBillDto ngtbd);
}
